package com.yiyahui.project.erp.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.yiyahui.framework.aspectj.lang.annotation.Desensitized;
import com.yiyahui.framework.aspectj.lang.annotation.Excel;
import com.yiyahui.framework.aspectj.lang.enums.SensitiveTypeEnum;
import com.yiyahui.framework.web.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 到店患者信息对象 yiya_clinic_person
 * 
 * @author yiyahui
 * @date 2020-06-22
 */

@ApiModel(value="到店患者信息对象")
public class YiyaClinicPerson extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 市场建档id */
    @ApiModelProperty(value="市场建档id")
    @Excel(name = "市场建档id")
    private Long marketReservationId;

    /** 病例号 */
    @ApiModelProperty(value="病例号")
    @Excel(name = "病例号")
    private String caseNumber;

    /** 用户头像 */
    @ApiModelProperty(value="用户头像")
    @Excel(name = "用户头像")
    private String imageUrl;

    /** 姓名 */
    @ApiModelProperty(value="姓名")
    @Excel(name = "姓名")
    private String name;

    /** 性别：1.男,2.女 */
    @ApiModelProperty(value="性别：1.男,2.女")
    @Excel(name = "性别" , readConverterExp = "0=未知,1=男,2=女")
    private Integer sex;

    /** 年龄 */
    @ApiModelProperty(value="年龄")
    @Excel(name = "年龄")
    private Integer age;

    /** 手机号 */
    @ApiModelProperty(value="手机号")
    @Desensitized(type=SensitiveTypeEnum.PHONE)
    @Excel(name = "手机号" )
    private String phoneNumber;

    /** 电话所属关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹,14.座机 */
    @ApiModelProperty(value="电话所属关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹,14.座机")
    @Excel(name = "关系" , readConverterExp = "0=本人,1=爸爸,2=妈妈,3=儿子,4=女儿,5=爷爷,6=奶奶,7=外公,8=外婆,9=朋友,10=配偶,11=邻居,12=其他,13=兄弟姐妹,14=座机")
    private Integer phoneOwnership;

    /** 手机号2 */
    @ApiModelProperty(value="手机号2")
    @Desensitized(type=SensitiveTypeEnum.PHONE)
    @Excel(name = "手机号2" )
    private String phoneNumber2;

    /** 电话所属关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹,14.座机 */
    @ApiModelProperty(value="电话所属关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹,14.座机")
    @Excel(name = "关系2" , readConverterExp = "0=本人,1=爸爸,2=妈妈,3=儿子,4=女儿,5=爷爷,6=奶奶,7=外公,8=外婆,9=朋友,10=配偶,11=邻居,12=其他,13=兄弟姐妹,14=座机")
    private Integer phoneOwnership2;

    /** 病种 */
    @ApiModelProperty(value="病种")
    @Excel(name = "病种")
    private String department;

    /** 微信号 */
    @ApiModelProperty(value="微信号")
    @Excel(name = "微信号")
    private String wechatNumber;

    /** qq号 */
    @ApiModelProperty(value="qq号")
    @Excel(name = "qq号")
    private String qqNumber;

    /** 邮箱 */
    @ApiModelProperty(value="邮箱")
    @Excel(name = "邮箱")
    private String email;

    /** 生日 */
    @ApiModelProperty(value="生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 到店门诊 */
    @ApiModelProperty(value="到店门诊")
    @Excel(name = "到店门诊")
    private String arriveClinic;

    /** 部门 */
    @ApiModelProperty(value="部门")
    @Excel(name = "部门")
    private String branch;

    /** 邮编 */
    @ApiModelProperty(value="邮编")
    @Excel(name = "邮编")
    private String postcode;

    /** 省份 */
    @ApiModelProperty(value="省份")
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @ApiModelProperty(value="城市")
    @Excel(name = "城市")
    private String city;

    /** 地区 */
    @ApiModelProperty(value="地区")
    @Excel(name = "地区")
    private String district;

    /** 详细地址 */
    @ApiModelProperty(value="详细地址")
    @Excel(name = "详细地址")
    private String addressDetailed;

    /** 职业 */
    @ApiModelProperty(value="职业")
    @Excel(name = "职业")
    private String profession;

    /** 有无小孩: 1.有,2.无 */
    @ApiModelProperty(value="有无小孩: 1.有,2.无")
    @Excel(name = "小孩", readConverterExp = "1=有,2=无")
    private Integer haveChild;

    /** 婚姻状况: 1.已婚 2.未婚 3.离异 */
    @ApiModelProperty(value="婚姻状况: 1.已婚 2.未婚 3.离异")
    @Excel(name = "婚姻", readConverterExp = "1=已婚,2=未婚,3=离异")
    private Integer maritalStatus;

    /** 性格 */
    @ApiModelProperty(value="性格")
    @Excel(name = "性格")
    private String personality;

    /** 消费习惯 */
    @ApiModelProperty(value="消费习惯")
    @Excel(name = "消费习惯")
    private String consumptionCustom;

    /** 经济能力 */
    @ApiModelProperty(value="经济能力")
    @Excel(name = "经济能力")
    private String economics;

    /** 一级渠道 */
    @ApiModelProperty(value="一级渠道")
    @Excel(name = "一级渠道")
    private String channelFirst;

    /** 二级渠道 */
    @ApiModelProperty(value="二级渠道")
    @Excel(name = "二级渠道")
    private String channelSecond;

    /** 三级渠道 */
    @ApiModelProperty(value="三级渠道")
    @Excel(name = "三级渠道")
    private String channelThird;

    /** 一级媒介 */
    @ApiModelProperty(value="一级媒介")
    @Excel(name = "一级媒介")
    private String mediumFirst;

    /** 二级媒介 */
    @ApiModelProperty(value="二级媒介")
    @Excel(name = "二级媒介")
    private String mediumSecond;

    /** 三级媒介 */
    @ApiModelProperty(value="三级媒介")
    @Excel(name = "三级媒介")
    private String mediumThird;

    /** 客户状态 */
    @ApiModelProperty(value="客户状态")
    @Excel(name = "客户状态")
    private String personStatus;

    /** 扫码状态 */
    @ApiModelProperty(value="扫码状态")
    @Excel(name = "扫码状态")
    private String scanStatus;

    /** 首到店时间 */
    @ApiModelProperty(value="首到店时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "首到店时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date firstOnClinicTime;

    /** 已交金额 */
    @ApiModelProperty(value="已交金额")
    @Excel(name = "已交金额")
    private BigDecimal overMoney;

    /** 欠费 */
    @ApiModelProperty(value="欠费")
    @Excel(name = "欠费")
    private BigDecimal arrearage;

    /** 开单状态 */
    @ApiModelProperty(value="开单状态")
    @Excel(name = "开单状态")
    private String billingState;

    /** 医生 */
    @ApiModelProperty(value="医生")
    @Excel(name = "医生")
    private String doctor;

    /** 初诊时间 */
    @ApiModelProperty(value="初诊时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "初诊时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date firstDiagnoseTime;

    /** 初诊tc */
    @ApiModelProperty(value="初诊tc")
    @Excel(name = "初诊tc")
    private String firstTc;

    /** 黄页编号 */
    @ApiModelProperty(value="黄页编号")
    @Excel(name = "黄页编号")
    private String yellowCode;

    /** 正畸编号 */
    @ApiModelProperty(value="正畸编号")
    @Excel(name = "正畸编号")
    private String orthodonticsCode;

    /** 网络咨询师 */
    @ApiModelProperty(value="网络咨询师")
    @Excel(name = "网络咨询师")
    private String networkCounselor;

    /** 身份证 */
    @ApiModelProperty(value="身份证")
    @Excel(name = "身份证")
    private String idCard;

    /** 卡号 */
    @ApiModelProperty(value="卡号")
    @Excel(name = "卡号")
    private String cardNumber;

    /** 建档人 */
    @ApiModelProperty(value="建档人")
    @Excel(name = "建档人")
    private String filingPerson;

    /** 推荐人id 员工就是员工id 患者就是患者id */
    @ApiModelProperty(value="推荐人id 员工就是员工id 患者就是患者id")
    @Excel(name = "推荐人id 员工就是员工id 患者就是患者id")
    private Long referrerId;

    /** 推荐人类型 1 员工 2 患者 */
    @ApiModelProperty(value="推荐人类型 1 员工 2 患者")
    @Excel(name = "推荐人类型 1 员工 2 患者")
    private Integer referrerType;

    /** 推荐人 */
    @ApiModelProperty(value="推荐人")
    @Excel(name = "推荐人")
    private String referrer;

    /** 推荐人关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹 */
    @ApiModelProperty(value="推荐人关系：0.本人,1.爸爸,2.妈妈,3.儿子,4.女儿,5.爷爷,6.奶奶,7.外公,8.外婆,9.朋友,10.配偶,11.邻居,12.其他,13.兄弟姐妹")
    @Excel(name = "推荐人关系", readConverterExp = "0=本人,1=爸爸,2=妈妈,3=儿子,4=女儿,5=爷爷,6=奶奶,7=外公,8=外婆,9=朋友,10=配偶,11=邻居,12=其他,13=兄弟姐妹,14=座机")
    private Integer referrerRelation;

    /** 建档时间 */
    @ApiModelProperty(value="建档时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "建档时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date filingTime;

    /** 是否为临时患者 0 是 1 不是 */
    @ApiModelProperty(value="是否为临时患者 0 是 1 不是")
    @Excel(name = "是否为临时患者",readConverterExp ="0=是,1=不是")
    private Integer isTemporary;

    /** 备注 */
    @ApiModelProperty(value="备注")
    @Excel(name = "备注")
    private String remarks;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setMarketReservationId(Long marketReservationId) 
    {
        this.marketReservationId = marketReservationId;
    }

    public Long getMarketReservationId() 
    {
        return marketReservationId;
    }
    public void setCaseNumber(String caseNumber) 
    {
        this.caseNumber = caseNumber;
    }

    public String getCaseNumber() 
    {
        return caseNumber;
    }
    public void setImageUrl(String imageUrl) 
    {
        this.imageUrl = imageUrl;
    }

    public String getImageUrl() 
    {
        return imageUrl;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setSex(Integer sex) 
    {
        this.sex = sex;
    }

    public Integer getSex() 
    {
        return sex;
    }
    public void setAge(Integer age) 
    {
        this.age = age;
    }

    public Integer getAge() 
    {
        return age;
    }
    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }
    public void setPhoneOwnership(Integer phoneOwnership) 
    {
        this.phoneOwnership = phoneOwnership;
    }

    public Integer getPhoneOwnership() 
    {
        return phoneOwnership;
    }
    public void setPhoneNumber2(String phoneNumber2) 
    {
        this.phoneNumber2 = phoneNumber2;
    }

    public String getPhoneNumber2() 
    {
        return phoneNumber2;
    }
    public void setPhoneOwnership2(Integer phoneOwnership2) 
    {
        this.phoneOwnership2 = phoneOwnership2;
    }

    public Integer getPhoneOwnership2() 
    {
        return phoneOwnership2;
    }
    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }
    public void setWechatNumber(String wechatNumber) 
    {
        this.wechatNumber = wechatNumber;
    }

    public String getWechatNumber() 
    {
        return wechatNumber;
    }
    public void setQqNumber(String qqNumber) 
    {
        this.qqNumber = qqNumber;
    }

    public String getQqNumber() 
    {
        return qqNumber;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setArriveClinic(String arriveClinic) 
    {
        this.arriveClinic = arriveClinic;
    }

    public String getArriveClinic() 
    {
        return arriveClinic;
    }
    public void setBranch(String branch) 
    {
        this.branch = branch;
    }

    public String getBranch() 
    {
        return branch;
    }
    public void setPostcode(String postcode) 
    {
        this.postcode = postcode;
    }

    public String getPostcode() 
    {
        return postcode;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setDistrict(String district) 
    {
        this.district = district;
    }

    public String getDistrict() 
    {
        return district;
    }
    public void setAddressDetailed(String addressDetailed) 
    {
        this.addressDetailed = addressDetailed;
    }

    public String getAddressDetailed() 
    {
        return addressDetailed;
    }
    public void setProfession(String profession) 
    {
        this.profession = profession;
    }

    public String getProfession() 
    {
        return profession;
    }
    public void setHaveChild(Integer haveChild) 
    {
        this.haveChild = haveChild;
    }

    public Integer getHaveChild() 
    {
        return haveChild;
    }
    public void setMaritalStatus(Integer maritalStatus) 
    {
        this.maritalStatus = maritalStatus;
    }

    public Integer getMaritalStatus() 
    {
        return maritalStatus;
    }
    public void setPersonality(String personality) 
    {
        this.personality = personality;
    }

    public String getPersonality() 
    {
        return personality;
    }
    public void setConsumptionCustom(String consumptionCustom) 
    {
        this.consumptionCustom = consumptionCustom;
    }

    public String getConsumptionCustom() 
    {
        return consumptionCustom;
    }
    public void setEconomics(String economics) 
    {
        this.economics = economics;
    }

    public String getEconomics() 
    {
        return economics;
    }
    public void setChannelFirst(String channelFirst) 
    {
        this.channelFirst = channelFirst;
    }

    public String getChannelFirst() 
    {
        return channelFirst;
    }
    public void setChannelSecond(String channelSecond) 
    {
        this.channelSecond = channelSecond;
    }

    public String getChannelSecond() 
    {
        return channelSecond;
    }
    public void setChannelThird(String channelThird) 
    {
        this.channelThird = channelThird;
    }

    public String getChannelThird() 
    {
        return channelThird;
    }
    public void setMediumFirst(String mediumFirst) 
    {
        this.mediumFirst = mediumFirst;
    }

    public String getMediumFirst() 
    {
        return mediumFirst;
    }
    public void setMediumSecond(String mediumSecond) 
    {
        this.mediumSecond = mediumSecond;
    }

    public String getMediumSecond() 
    {
        return mediumSecond;
    }
    public void setMediumThird(String mediumThird) 
    {
        this.mediumThird = mediumThird;
    }

    public String getMediumThird() 
    {
        return mediumThird;
    }
    public void setPersonStatus(String personStatus) 
    {
        this.personStatus = personStatus;
    }

    public String getPersonStatus() 
    {
        return personStatus;
    }
    public void setScanStatus(String scanStatus) 
    {
        this.scanStatus = scanStatus;
    }

    public String getScanStatus() 
    {
        return scanStatus;
    }
    public void setFirstOnClinicTime(Date firstOnClinicTime) 
    {
        this.firstOnClinicTime = firstOnClinicTime;
    }

    public Date getFirstOnClinicTime() 
    {
        return firstOnClinicTime;
    }

    public BigDecimal getOverMoney() {
        return overMoney;
    }

    public void setOverMoney(BigDecimal overMoney) {
        this.overMoney = overMoney;
    }

    public BigDecimal getArrearage() {
        return arrearage;
    }

    public void setArrearage(BigDecimal arrearage) {
        this.arrearage = arrearage;
    }

    public void setBillingState(String billingState)
    {
        this.billingState = billingState;
    }

    public String getBillingState() 
    {
        return billingState;
    }
    public void setDoctor(String doctor) 
    {
        this.doctor = doctor;
    }

    public String getDoctor() 
    {
        return doctor;
    }
    public void setFirstDiagnoseTime(Date firstDiagnoseTime) 
    {
        this.firstDiagnoseTime = firstDiagnoseTime;
    }

    public Date getFirstDiagnoseTime() 
    {
        return firstDiagnoseTime;
    }
    public void setFirstTc(String firstTc) 
    {
        this.firstTc = firstTc;
    }

    public String getFirstTc() 
    {
        return firstTc;
    }
    public void setYellowCode(String yellowCode) 
    {
        this.yellowCode = yellowCode;
    }

    public String getYellowCode() 
    {
        return yellowCode;
    }
    public void setOrthodonticsCode(String orthodonticsCode) 
    {
        this.orthodonticsCode = orthodonticsCode;
    }

    public String getOrthodonticsCode() 
    {
        return orthodonticsCode;
    }
    public void setNetworkCounselor(String networkCounselor) 
    {
        this.networkCounselor = networkCounselor;
    }

    public String getNetworkCounselor() 
    {
        return networkCounselor;
    }
    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }
    public void setCardNumber(String cardNumber) 
    {
        this.cardNumber = cardNumber;
    }

    public String getCardNumber() 
    {
        return cardNumber;
    }
    public void setFilingPerson(String filingPerson) 
    {
        this.filingPerson = filingPerson;
    }

    public String getFilingPerson() 
    {
        return filingPerson;
    }
    public void setReferrerId(Long referrerId) 
    {
        this.referrerId = referrerId;
    }

    public Long getReferrerId() 
    {
        return referrerId;
    }
    public void setReferrerType(Integer referrerType) 
    {
        this.referrerType = referrerType;
    }

    public Integer getReferrerType() 
    {
        return referrerType;
    }
    public void setReferrer(String referrer) 
    {
        this.referrer = referrer;
    }

    public String getReferrer() 
    {
        return referrer;
    }
    public void setReferrerRelation(Integer referrerRelation) 
    {
        this.referrerRelation = referrerRelation;
    }

    public Integer getReferrerRelation() 
    {
        return referrerRelation;
    }
    public void setFilingTime(Date filingTime) 
    {
        this.filingTime = filingTime;
    }

    public Date getFilingTime() 
    {
        return filingTime;
    }
    public void setIsTemporary(Integer isTemporary) 
    {
        this.isTemporary = isTemporary;
    }

    public Integer getIsTemporary() 
    {
        return isTemporary;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("marketReservationId", getMarketReservationId())
            .append("caseNumber", getCaseNumber())
            .append("imageUrl", getImageUrl())
            .append("name", getName())
            .append("sex", getSex())
            .append("age", getAge())
            .append("phoneNumber", getPhoneNumber())
            .append("phoneOwnership", getPhoneOwnership())
            .append("phoneNumber2", getPhoneNumber2())
            .append("phoneOwnership2", getPhoneOwnership2())
            .append("department", getDepartment())
            .append("wechatNumber", getWechatNumber())
            .append("qqNumber", getQqNumber())
            .append("email", getEmail())
            .append("birthday", getBirthday())
            .append("arriveClinic", getArriveClinic())
            .append("branch", getBranch())
            .append("postcode", getPostcode())
            .append("province", getProvince())
            .append("city", getCity())
            .append("district", getDistrict())
            .append("addressDetailed", getAddressDetailed())
            .append("profession", getProfession())
            .append("haveChild", getHaveChild())
            .append("maritalStatus", getMaritalStatus())
            .append("personality", getPersonality())
            .append("consumptionCustom", getConsumptionCustom())
            .append("economics", getEconomics())
            .append("channelFirst", getChannelFirst())
            .append("channelSecond", getChannelSecond())
            .append("channelThird", getChannelThird())
            .append("mediumFirst", getMediumFirst())
            .append("mediumSecond", getMediumSecond())
            .append("mediumThird", getMediumThird())
            .append("personStatus", getPersonStatus())
            .append("scanStatus", getScanStatus())
            .append("firstOnClinicTime", getFirstOnClinicTime())
            .append("overMoney", getOverMoney())
            .append("arrearage", getArrearage())
            .append("billingState", getBillingState())
            .append("doctor", getDoctor())
            .append("firstDiagnoseTime", getFirstDiagnoseTime())
            .append("firstTc", getFirstTc())
            .append("yellowCode", getYellowCode())
            .append("orthodonticsCode", getOrthodonticsCode())
            .append("networkCounselor", getNetworkCounselor())
            .append("idCard", getIdCard())
            .append("cardNumber", getCardNumber())
            .append("filingPerson", getFilingPerson())
            .append("referrerId", getReferrerId())
            .append("referrerType", getReferrerType())
            .append("referrer", getReferrer())
            .append("referrerRelation", getReferrerRelation())
            .append("filingTime", getFilingTime())
            .append("isTemporary", getIsTemporary())
            .append("remarks", getRemarks())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
